/*
 * 文件名：ExportExcelUtil.java 版权：Copyright by seisys 描述：(必填) 修改人：〈根据各自修改，必改〉 修改时间：2017年7月14日
 */

package com.seari.utils;


import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;


/**
 * 导出excel工具
 * 
 * @author 刘伟
 * @version 2017年7月14日
 * @see ExportExcelUtil
 */
public class ExportExcelUtil
{

    /**
     * 设置返回文件的头消息
     * 
     * @param response
     *            返回对象
     * @param fileName
     *            下载的文件名
     * @param encode
     *            url编码
     * @return
     * @throws IOException
     * @see
     */
    public static OutputStream setHeaders(HttpServletResponse response, String fileName,
                                          String encode)
        throws IOException
    {

        fileName = URLEncoder.encode(fileName, encode);
        // 设置返回消息头
        response.reset();
        response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
        response.setContentType(
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");

        return new BufferedOutputStream(response.getOutputStream());
    }

    /**
     * 回写文件
     * 
     * @param response
     * @param out
     * @param workbook
     * @throws IOException
     * @see
     */
    public static void writeFile(HttpServletResponse response, OutputStream out,
                                 HSSFWorkbook workbook)
        throws IOException
    {
        workbook.write(out);
        // 关闭
        workbook.close();
        out.flush();
        out.close();
        response.flushBuffer();
    }

}
